#ifndef ABSTRACTSTATE_H
#define ABSTRACTSTATE_H

#include <QObject>
class StateManager;

class AbstractState : public QObject
{
    Q_OBJECT
public:
    explicit AbstractState(const QString& stateId, StateManager& sm);

    virtual void enter();
    virtual void exit();

    StateManager& stateManager();

    const QString& stateId() const;
private:
    QString m_stateId;
    StateManager& m_sm;
signals:

public slots:

};

#endif // ABSTRACTSTATE_H
